// 关键词提取工具
// 移除不必要的文件系统引用
// const fs = wx.getFileSystemManager();

const keywordExtractor = {
  /**
   * 从文本中提取关键词
   * 简化版本，实际项目中可接入云函数或第三方NLP服务
   * @param {string} text 输入文本
   * @returns {string} 提取出的主要关键词
   */
  extract: function (text) {
    // 确保text是字符串类型
    if (!text || typeof text !== 'string') {
      return '';
    }

    // 菜名关键词库，实际项目中可使用更完善的词库
    const dishKeywords = [
      '红烧肉', '糖醋排骨', '鱼香肉丝', '宫保鸡丁', '麻婆豆腐',
      '水煮鱼', '回锅肉', '西红柿炒蛋', '番茄炒蛋', '青椒炒肉',
      '青椒炒肉丝', '土豆炖牛肉', '可乐鸡翅', '红烧排骨', '蒜蓉西兰花',
      '清蒸鱼', '葱爆羊肉', '香辣蟹', '酸菜鱼', '梅菜扣肉',
      '爆炒虾仁', '蒜蓉粉丝蒸虾', '卤鸡爪', '红烧茄子', '鱼香茄子'
    ];

    // 查找文本中包含的菜名关键词
    for (const keyword of dishKeywords) {
      if (text.includes(keyword)) {
        return keyword;
      }
    }

    // 如果没有匹配到菜名关键词，简单返回前几个字作为关键词
    // 实际应用中应该使用更复杂的NLP算法
    try {
      const cleanText = text.trim();
      if (cleanText.length <= 10) {
        return cleanText;
      }
      return cleanText.substring(0, 10);
    } catch (e) {
      console.error('提取关键词出错:', e);
      return text.substring(0, Math.min(10, text.length));
    }
  },

  /**
   * 从语音识别结果中提取关键词
   * @param {string} voiceText 语音识别文本
   * @returns {string} 提取出的主要关键词
   */
  extractFromVoice: function (voiceText) {
    try {
      // 确保voiceText是字符串类型
      if (!voiceText || typeof voiceText !== 'string') {
        return '';
      }
      // 处理语音识别可能带来的标点符号等
      const cleanText = voiceText.replace(/[.,，。!？?、:：;；""'']/g, '');
      return this.extract(cleanText);
    } catch (error) {
      console.error('从语音提取关键词出错:', error);
      // 出错时尝试直接使用原文本
      return voiceText ? this.extract(voiceText) : '';
    }
  },

  /**
   * 从图像识别结果中提取关键词
   * @param {string} imageRecognitionResult 图像识别文本
   * @returns {string} 提取出的主要关键词
   */
  extractFromImage: function (imageRecognitionResult) {
    // 图像识别结果可能更复杂，这里简化处理
    return this.extract(imageRecognitionResult);
  }
};

module.exports = keywordExtractor;